1. Technical Field
This invention relates to embedded systems, and more specifically, the synchronization of asynchronous Input/Output (I/O) peripherals with a central processing unit within an embedded system.
2. Discussion of Related Art
An embedded system is a combination of embedded hardware, embedded software, and other electro/mechanical components that is designed to perform a specific function. Typically, an embedded system consists of a CPU, a memory, and one or more I/O peripherals. Some of the I/O peripherals might reside within the same chip as the CPU and are called internal peripherals, while others might reside outside the CPU, and are hence called external peripherals. The input peripherals are typically analog-to-digital (A/D) devices such as, for example sensors, transducers, steering mechanisms or other such devices. Output peripherals are typically D/A devices such as actuators, switches, display devices, or other such devices.
Due to various power and performance requirements, the different components of an embedded system operate in different clock domains (frequency). For example, the CPU works at higher frequency than most I/O peripherals. In order to harmonize all these different clock domain devices, data transfer should be synchronized from one clock domain to another.
Therefore, there is a need to efficiently synchronize the various asynchronous peripherals with the CPU in an embedded system.